本发明属于计算系统虚拟化技术领域,具体涉及一种公有云平台虚拟机调度方法。技术方案是:设置多个调度服务器来处理用户请求。本发明通过多调度机调度方法及其平台资源的优化和虚拟机迁移的设置,有效解决了单调度机调度方法容易造成拥塞的问题;可以快速对客户请求做出响应,提升服务效率。可以广泛应用于公有云平台虚拟机调度中。
1.一种公有云平台虚拟机调度方法,其特征在于:设置多个调度服务器来处理用户请求。
2.根据权利要求1所述的调度方法,其特征在于:用λ表示单位时间内平均到达的用户请求数,用μ表示服务台的平均服务速率,用ρ表示平均每单位时间中系统可以为顾客服务的比例,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="45"/>即服务强度,W
s表示顾客在系统中的平均逗留时间,W
q表示顾客排队等待的平均时间,则:
W s = ( kρ ) k ρ k ! ( 1 - ρ ) 2 ρ T 0 + 1 μ , ]]> W q = ( kρ ) k ρ k ! ( 1 - ρ ) 2 λ T 0 , ]]> T 0 = [ Σ n = 0 k - 1 1 n ! ( λ μ ) n + 1 k ! ( 1 - ρ ) ( λ μ ) k ] - 1 ]]> 3.根据权利要求1所述的调度方法,其特征在于:限定队列的最大的长度值,当队列长度超过限定值时,所有的用户请求均暂时被拒绝。
4.根据权利要求2所述的调度方法,其特征在于:限定队列的最大长度值,当队列长度超过限定值时,所有的用户请求均暂时被拒绝。
5.根据权利要求1至4任一项所述的调度方法,其特征在于:按照如下原则进行平台资源分配:A、从单一虚拟机角度来看,V
i中任意v
ij所占用的任意一项资源量(如频率、核心数、磁盘空间、带宽)小于物理机P
i的资源总量;即
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="115"/>并且
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="117"/>并且
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="107"/>并且
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="120"/>并且
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="116"/>B、虚拟机集合Vi中所有虚拟机占用的任意资源量之和小于物理机Pi的资源总量,即D(V
i)
i,并且M(Vi)i,并且B(Vi)i,并且F(Vi)i,并且C(Vi)i;前述符号Pi表示云中任一台物理机,Ci表示Pi可供分配的物理核心数,Fi表示Pi可供分配的CPU核心频率之和,Mi表示Pi可供分配的总物理内存,Bi表示Pi可供分配的总带宽,Di表示Pi可供分配的总磁盘空间,Vi表示Pi上运行的虚拟机集合,F(Vi)表示Vi占用的CPU频率之和,C(Vi)表示Vi占用的CPU核心数之和,M(Vi)表示Vi占用的内存之和,D(Vi)表示Vi占用的磁盘空间之和,B(Vi)表示Vi分配的带宽之和。
6.根据权利要求1至4任一项所述的调度方法,其特征在于:调度服务器首先遍历元数据库中的物理机,根据其当前状态信息找到当前剩余资源可以满足用户需要的物理机集合;然后按照物理机的使用率对结果集合进行排序;用户请求的虚拟机将优先被部署在总体使用率较低的物理机上;使用率包含主频、核心数、内存等各方面;一般情况下以CPU总体使用率作为物理机使用率的主要指标。
7.根据权利要求5所述的调度方法,其特征在于:调度服务器首先遍历元数据库中的物理机,根据其当前状态信息找到当前剩余资源可以满足用户需要的物理机集合;然后按照物理机的使用率对结果集合进行排序;用户请求的虚拟机将优先被部署在总体使用率较低的物理机上;使用率包含主频、核心数、内存等各方面;一般情况下以CPU总体使用率作为物理机使用率的主要指标。
8.根据权利要求1至4任一项所述的调度方法,其特征在于:当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求;对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。
9.根据权利要求5所述的调度方法,其特征在于:当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求;对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。
10.根据权利要求6所述的调度方法,其特征在于:当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求;对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。
11.根据权利要求7所述的调度方法,其特征在于:当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求;对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。技术领域
本发明属于计算系统虚拟化技术领域,具体涉及一种公有云平台虚拟机调度方法。
背景技术
云计算技术利用高速互联网的传输能力,将计算、存储、软件、服务等资源从分散的个人计算机或服务器移植到互联网中集中管理的大规模高性能计算机、个人计算机、虚拟计算机中,从而使用户像使用电力一样使用这些资源。云计算表述了一种新的计算模式:应用、数据和IT资源以服务的方式通过网络提供给用户使用。从层次上云计算平台可以分为以下三个层次:软件即服务(Softwarexa0asxa0axa0Service,SaaS)指的是通过浏览器,以服务形式提供给用户应用程序,包括众多的SaaS应用软件,以及托管与被管理的应用软件。Saleforce是全球著名的SaaS软件提供商,通过SaaS平台向全美企业客户提供ERP、SCM、CRM等软件服务。平台即服务(Platformxa0asxa0axa0Service,PaaS)指的是以服务形式提供给开发人员应用程序开发及部署平台,让他们可利用此平台来开发、部署和管理SaaS应用程序。这种平台一般包含数据库、中间件及开发工具,所有都以服务形式通过互联网提供。如Google的Googlexa0APP平台、Googlexa0Map平台都以PaaS形式提供服务。基础架构即服务(Infrastructurexa0asxa0axa0Service,IaaS)指的是以服务形式提供服务器、存储和网络硬件。这类基础架构一般是利用虚拟化平台架构建立虚拟化的环境,因此虚拟化、集群和动态配置软件也被涵盖在IaaS之中。如Amazon的EC2平台是当前最著名的IaaS平台。用户无需了解底层系统的支撑架构,不需要维护和购买相应的软硬件,通过租用云计算平台即可享用各种低成本的信息化服务。云计算改变了原有的互联网资源提供商需要独立、分散建造机房、运营系统、维护安全的困境,极大低降低了企业整体能源消耗,为企业、政府提供了绿色、低碳、高效的IT基础设施实施及管理方案。云计算技术可以将一些复杂的高性能计算或海量存储任务,根据一定的规则进行分解,分发给网络中的许多台计算机,让这些计算机同时参与运算或存储,从而更快地获得计算结果。这种革命性的举措,意味着计算能力可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。从服务对象和范围来讲,云计算平台可以被分为三种:公有云,私有云和混合云。公有云面向广域分布的社会大众或中小企业提供的云计算服务。公有云服务平台一般规模庞大,由地理上分布的多个数据中心共同为用户提供服务,最常见的公有云服务形式如Amazon(亚马逊公司)的EC2、Google(谷歌公司)的APP、Apple(苹果公司)的Appstore等。公有云通过按需租用的形式向社会大众提供服务,从而使个人和中小企业能够以较低的成本建立自己的业务系统。公有云平台的监管一个较为重大的问题,如EC2中的资源有很多用于垃圾邮件、黑客攻击等。私有云仅面向特定的公司或组织提供云计算服务的平台。私有云平台一般在地理上是集中在一个企业内部的数据中心,由企业统一进行安全管理,从而具有较高的安全性。私有云平台要求对各种资源有更多的控制权,从而可以对不同优先级用户进行不同的响应,因此用户可以对资源有更加明确的需求,而公有云平台则将用户和资源都视为等同的。当前广泛应用的私有云平台,如VMware的VCloud,Citrix的XENxa0Cloud等。混合云是公有云和私有云的结合。它通过公有云平台联结多个私有云的资源、应用、数据或服务(如通过代理结点接入私有云),并在公有云中向广大用户提供统一的访问接口,从而在保证私有云安全性的同时,提供了一种私有云接入公有云的模型。常见的混合云模型如OpenNebula平台。前述公有云平台一般采用单调度机方式进行虚拟机调度,容易造成拥塞等问题。
发明内容
本发明解决的技术问题在于针对当前计算系统虚拟化方法的不足,提供一种公有云平台虚拟机调度方法,该方法具有低成本、高效率、强鲁棒性、易扩展性和高可靠性等特点。本发明解决上述技术问题的技术方案是:设置多个调度服务器来处理用户请求。用λ表示单位时间内平均到达的用户请求数,用μ表示服务台的平均服务速率,用ρ表示平均每单位时间中系统可以为顾客服务的比例,
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="45"/>即服务强度,Ws表示顾客在系统中的平均逗留时间,Wq表示顾客排队等待的平均时间,则: W s = ( kρ ) k ρ k ! ( 1 - ρ ) 2 ρ T 0 + 1 μ , ]]> W q = ( kρ ) k ρ k ! ( 1 - ρ ) 2 λ T 0 , ]]> T 0 = [ Σ n = 0 k - 1 1 n ! ( λ μ ) n + 1 k ! ( 1 - ρ ) ( λ μ ) k ] - 1 ]]> 限定队列的最大的长度值,当队列长度超过限定值时,所有的用户请求均暂时被拒绝。按照如下原则进行平台资源分配:A、从单一虚拟机角度来看,Vi中任意vij所占用的任意一项资源量(如频率、核心数、磁盘空间、带宽)小于物理机Pi的资源总量;即
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="113"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="120"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="106"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="120"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="116"/>B、虚拟机集合Vi中所有虚拟机占用的任意资源量之和小于物理机Pi的资源总量,即D(Vi)i,并且M(Vi)i,并且B(Vi)i,并且Fxa0(Vi)i,并且C(Vi)i;前述符号Pi表示云中任一台物理机,Ci表示Pi可供分配的物理核心数,Fi表示Pi可供分配的CPU核心频率之和,Mi表示Pi可供分配的总物理内存,Bi表示Pi可供分配的总带宽,Di表示Pi可供分配的总磁盘空间,Vi表示Pi上运行的虚拟机集合,F(Vi)表示Vi占用的CPU频率之和,C(Vi)表示Vi占用的CPU核心数之和,M(Vi)表示Vi占用的内存之和,D(Vi)表示Vi占用的磁盘空间之和,B(Vi)表示Vi分配的带宽之和。调度服务器首先遍历元数据库中的物理机,根据其当前状态信息找到当前剩余资源可以满足用户需要的物理机集合;然后按照物理机的使用率对结果集合进行排序;用户请求的虚拟机将优先被部署在总体使用率较低的物理机上;使用率包含主频、核心数、内存等各方面;一般情况下以CPU总体使用率作为物理机使用率的主要指标。当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求;对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。本发明通过多调度机调度方法及其平台资源的优化和虚拟机迁移的设置,有效解决了单调度机调度方法容易造成拥塞的问题;可以快速对客户请求做出响应,提升服务效率。
附图说明
下面结合附图对本发明进一步说明:图1是本发明虚拟机调度流程示意图;图2是本发明虚拟机调度模型示意图;图3是本发明平台请求排队过程示意图。
具体实施方式
见图1所示,本发明中公有云平台主要由三个重要组成部份组成:云管理中心1:是云对外服务的接口,也是云资源统一管理、监控和调度的中心。云管理中心接受用户对整个云的资源请求,按需从平台管理的资源中为用户分配好所需的资源(如虚拟机、存储资源等),并进行初始设置,然后请资源访问路径返回给用户。云计算资源中心2:由逻辑上可管理的物理计算资源组成,对于云平台而言,这些物理机将作为虚拟机的宿主机,供平台调度。平台的调度服务器将根据用户需求,从平台中选择最优的资源以保证虚拟机的运行。一般情况下,多个云计算资源中心以一台代理服务器作为资源与云管理中心的接入点,以完成对计算资源的监控和调度。云存储资源中心3:由逻辑上可管理的物理存储资源组成。对IaaS平台而言,虚拟机模板、用户虚拟机镜像、快照等全部存储在统一管理的存储结点上,如NFS、S3、ISCSI等。用户的虚拟机文件在创建时读入具体的物理机并由虚拟机系统加载,对于平台而言,物理机和虚拟机之间是松耦合的。这也是公有云平台和私有云平台的最大区别。本发明中用户向平台申请资源流程如下所示:1、注册用户登录平台Portal服务器,向平台提出虚拟机资源请求,包含CPU核心数、主频、内存、硬盘大小等相关参数;2、Portal服务器将用户请求转发给调度服务器;3、调度服务器查询元数据库,查找可以满足该虚拟机运行需求的物理服务器列表;4、调度服务器从列表中选择优先级最高的一台物理机,把请求转给该物理机所在区域的代理服务器;5、调度服务器根据用户请求的虚拟机类型从存储资源中选择虚拟机镜像模板,把镜像传输请求交给存储资源的代理服务器;6、用户请求的虚拟机镜像被加载到被调度服务器选中的物理机中。调度服务器通过代理服务器启动物理服务器上加载成功的虚拟机。如4-6的过程中出错,调度服务器将选择新的物理机加载虚拟机;7、用户请求的虚拟机启动后,用户可以通过RDP、VNC、ICA、SSH协议终端远程访问运行中的虚拟机。各代理服务器同时具有资源的监控功能,它们定期向云管理中心返回各云计算资源和存储资源中心的资源情况,并更新元数据库,从而保证平台调度的正确性;更新元数据库的流程包括如下两个步骤:1、监控服务器定时向调度服务器定时发出资源信息更新请求,请度度服务器将请求分发到各代理服务器,代理服务器获取信息后将请求返回给监控服务器;2、监控服务器将资源信息更新到元数据库,以保证信息的有效性,从而提高资源的调度效率。根据平台的服务流程,我们可以将公有云平台的服务过程抽象为如图2所示的模型。模型包括三个主要的流程:1、管理中心的调度平台,从用户请求队列中取出优先级最高的用户请求R。R首先读取元数据库,根据用户请求的硬件资源判断是否能被当前空闲的物理机资源满足,如CPU频率、核心数、带宽、存储、硬盘空间等。如果能满足,则直接转向步骤2;如果不能满足,判断是否可以通过平台虚拟机迁移,释放相关资源;如果可以则在执行迁移步骤,转步骤2;如果即使迁移也无法完成,则退出,并报告用户资源无法完成请求。2、如果资源请求可以满足,调度服务器从存储结点中选择与用户请求对应的虚拟机模板T(对于新建立的虚拟机)或虚拟机镜像I。3、调度服务器将I迁入对应的物理机,并创建对应的虚拟机实例V。从模型中我们可以看出,平台调度的几个核心问题:1、平台队列的长度如何确定,优先级如何调整,从而保证最快的用户请求响应。2、调度服务器如何分解用户请求R,并从元数据库找到最优的资源,为用户提供服务。3、如果平台需要调整现有物理机上的虚拟机分布,如何以最小的调整代价,实现资源的重新分配。对于部分平台,由于迁移可能造成平台QoS的不稳定;迁移的条件要求较高,以确保最少的虚拟机受到影响为准。根据平台的服务模型,通过各项指标进行量化,来分析云平台的吞吐率,并对模型进行优化分析。请求队列如图3所示,从排队论的观点来看公有云平台的资源请求及调度过程是一个排队及接受服务的过程,排队系统的输入即用户请求,服务台即调度服务器,输出为用户请求到的资源。用户请求队列为R={R1,R2,R3,...Rn}。一般可假设在IaaS公有云平台用户的排队过程中,用户请求到达服从泊松分布,服务时间服从指数分布。用λ表示单位时间内平均到达的用户请求数,用μ表示服务台的平均服务速率(服务台的服务能力)。用ρ表示平均每单位时间中系统可以为顾客服务的比例,
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="45"/>即服务强度。Ws表示顾客在系统中的平均逗留时间(包括排队等待时间和接受服务的时间),Wq表示顾客排队等待的平均时间,可通过如下公式计算,在单队单服务台的情况下: W s = 1 μ - λ ]]> W q = ρ μ - λ ]]> 从公式(1)、(2)可以看出,提高平台对用户请求的响应时间有两个途径:一是减少调度服务器接受的请求数;另外一个是提高平台的响应速度。因此可以设置多个调度服务器来处理用户请求在单队k个服务台的情况下: W s = ( kρ ) k ρ k ! ( 1 - ρ ) 2 ρ T 0 + 1 μ ]]> W q = ( kρ ) k ρ k ! ( 1 - ρ ) 2 λ T 0 ]]> T 0 = [ Σ n = 0 k - 1 1 n ! ( λ μ ) n + 1 k ! ( 1 - ρ ) ( λ μ ) k ] - 1 ]]> 多队多服务台可看作是多个单队单服务台,并结合以上公式进行分析。一般情况下,为了将平台的响应时间控制在用户可以接受的范围内。平台将限定队列的最大的长度值,当队列长度超过限定值时,所有的用户请求均暂时被拒绝,因此队列可能的最长响应时间即最长队列的处理时间。模型量化设IaaS云计算平台所包含的物理机集合为P,则:P={P1,P2,P3,...Pn},其中n为物理机的数量。设F为物理机的单CPU核心的主频,F={F1,F2,F3,...Fn};设C为物理机对应的核心数C={C1,C2,C3,...Cn};D为物理机对应的可用磁盘空间D={D1,D2,D3,...Dn};B为物理机可用的最大带宽B={B1,B2,B3,...Bn};M为物理机可用的最大内存M={M1,M2,M3,...Mn};则有每台物理机的总频率之和为TF,即TF={TF1,TF2,TF3,...TFN}={F1×C1,F2×C2,F3×C3,...,Fn×Cn},即Fi×Ci。各变量及公式说明如表1所示。设对应物理机上的虚拟机集合为V={V1,V2,V3,...Vn};其中Vi={vi1,vi2,...,vim},vij为运行在物理机Pi上的某一虚拟机。F(vij)为vij对应的频率,则物理机上所有虚拟机的频率之和为: F ( V i ) = Σ j = 1 m f ( v ij ) ]]> 如果符号代表意义如下表:表1公式说明 xa0xa0符号
xa0xa0表示
xa0xa0Pi
xa0xa0云中任一台物理机
xa0xa0Ci
xa0Pi可供分配的物理核心数
xa0xa0Fi
xa0Pi可供分配的CPU核心频率之和
xa0xa0Mi
xa0Pi可供分配的总物理内存
xa0xa0Bi
xa0Pi可供分配的总带宽
xa0xa0Di
xa0Pi可供分配的总磁盘空间
xa0xa0Vi
xa0Pi上运行的虚拟机集合
xa0xa0F(Vi)
xa0Vi占用的CPU频率之和
xa0xa0C(Vi)
xa0Vi占用的CPU核心数之和
xa0xa0M(Vi)
xa0Vi占用的内存之和
xa0xa0D(Vi)
xa0Vi占用的磁盘空间之和
xa0xa0B(Vi)
xa0Vi分配的带宽之和
c(vij)为vij对应的物理核心数,则物理机上所有虚拟机的物理核心数之和为 C ( V i ) = Σ j = 1 m c ( v ij ) ]]> m(vij)为vij对应的可用内存,则物理机上所有虚拟机的内存之和为 M ( V i ) = Σ j = 1 m m ( v ij ) ]]> d(vij)为vij对应的磁盘空间,则物理机上所有虚拟机的磁盘空间之和为 D ( V i ) = Σ j = 1 m d ( v ij ) ]]> b(vij)为vij对应的可用带宽,则物理机上所有虚拟机的带宽之和为 B ( V i ) = Σ j = 1 m b ( v ij ) ]]> 调度原则对于用户请求,IaaS公有云平台资源分配要遵循以下原则,这也是平台资源分配的必要条件。(1)从单一虚拟机角度来看,Vi中任意vij所占用的任意一项资源量(如频率、核心数、磁盘空间、带宽)小于物理机Pi的资源总量。即
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="113"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="114"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="108"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="120"/>并且
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="118"/>(2)虚拟机集合Vi中所有虚拟机占用的任意资源量之和小于物理机Pi的资源总量,即D(Vi)i,并且M(Vi)i,并且B(Vi)i,并且Fxa0(Vi)i,并且C(Vi)i。设用户请求Ri可以被分解为对CPU频率的请求RFi,对CPU核心数的请求RCi,对内存的请求RMi,对磁盘空间的请求RDi,对带宽的请求RBi。调度服务器首先遍历元数据库中的物理机,根据其当前状态信息找到当前剩余资源可以满足用户需要的物理机集合;然后按照物理机的使用率对结果集合进行排序。用户请求的虚拟机将优先被部署在总体使用率较低的物理机上。使用率包含主频、核心数、内存等各方面。一般情况下以CPU总体使用率作为物理机使用率的主要指标。迁移模型公有云平台可以通过迁移物理机上虚拟机以释放资源,来完成当前资源请求无法到的需求。由于虚拟机的迁移会造成虚拟机QoS的下降,并影响相关物理相上所有的虚拟机(I/O操作相关影响)。因此,平台应尽可能减少虚拟机的迁移操作,尽可能用一次虚拟机迁移操作即可得到可以满足用户请求的物理机。当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求。对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。